[レポート]CloudWatch RUMとCloudWatch Syntheticsの活用方法を学ぶことができる「Monitor end user experience with Amazon CloudWatch」に参加しました #AWSreInvent #COP304
re:Invent2024に参加している。たかやまです。
現在開催中のre:Invent2024で行われたBuilders' session「COP304-R1 | Monitor end user experience with Amazon CloudWatch」のレポートをお伝えします。
セッション概要
タイトル : COP304-R1 | Monitor end user experience with Amazon CloudWatch
AWSのデジタル・エクスペリエンス・モニタリングは、アプリケーション・パフォーマンス・モニタリングをエンドユーザーだけでなくフロントエンドのエクスペリエンスにまで拡張することで、すべてのユーザータッチポイントにわたるアプリケーション・パフォーマンスのアウトサイドインの視点で顧客エクスペリエンスを向上させます。 このようなユーザー・エクスペリエンス・データは全体像を提供し、フロントエンドのパフォーマンス、ユーザー行動、APIをリリース速度、採用率、コンバージョンなどの実用的なKPIに変えるのに役立ちます。 このビルダーズセッションでは、ISPやAWSからのデータを使用して、実際のユーザーと合成ユーザーの両方のアクティビティと行動を監視し、バックエンドのインフラストラクチャとデバイス、およびデジタル・ユーザーのメトリクスから洞察を得ることで、アプリケーションがどのように動作するかを学びます。 参加にはノートパソコンが必要です。
スピーカー :
・Miki Yoshil, Solutions Architect, AWS Japan
・Shanna Chang, Solutions Architect, Amazon Web Service
・Andrea Giulano, Principal Software Developer Engineer, Amazon Web Services
・Jay Joshi, Sr. Cloud Support Engineer, AWS India - Karnataka
・Yoshiki Yanagi Senior Solutions Architect, Amazon Web Services Japanセッションレベル : 300
Builders' sessionをやってみた
このBuilders' sessionではOne Observability Workshopの環境を拡張して、CloudWatch RUMやCloudWatch Syntheticsの活用方法を学ぶことができるセッションです。
Labごとに内容は別れているので興味のある部分からやることができました。
時間内ではLab 1 〜 4 をやることを想定しており、早く終わった人もしくは基本的な活用方法を知っている人はオプションのLab 5 〜 7 も用意されていました。
Lab 1 JavaScript Error
Lab 1ではJavaScriptでエラーが発生した際の対処方法を学べました。
まずは、CloudWatch Alarmを設定し、JavaScriptのエラーを検知できる状態にします。
その後の調査としてCloudWatch RUMを使用して、ユーザーモニタリングを可能な状態にし、JavaScriptエラーを特定する方法を学べます。
Lab 1ではCloudWatch RUMを活用してJavaScriptエラーを特定する方法を学びました。さらに、CloudWatch RUMが提供する既製のメトリクスを使用してアラームを作成し、メールやSlackを通じて各チームにアラートを送信することができます。
Lab 2 Synthetic Testing
Lab 2では基本的なCloudWatch Syntheticsの使い方を学べました。
Syntheticsを利用したカナリアテストのエラー特定方法
HARファイルを利用した詳細なパフォーマンスデータの取得方法
Lab2では、カナリアテストの結果を確認する方法を学びました。これらの機能により、カナリアテストに関する詳細な情報が得られ、ユーザーは障害のトラブルシューティング、パフォーマンスの分析、最適化が必要な領域を特定することができます。
Lab 3 API performance
Lab 3ではCloudWatch RUMとExplore Related telemetryを使用したWebページのパフォーマンス問題の調査方法を学べました。
CloudWatch RUMの画面で「Slowest load time」で特定のページがパフォーマンス問題を抱えていることを確認
「Page load steps over time」でどのステップで時間がかかているか特定
ここでは「Content downloaded」に時間がかかっていることがわかります
また、バックエンドの調査ではCloudWatch Container Insightsを使って調査を行いました。
こちらの画面からExplore Related機能を利用することで、サービスの関連エラーログの特定が容易になります。
Lab 3では、CloudWatch RUMとExplore Relatedのテレメトリ機能を活用して、ユーザーエクスペリエンスのパフォーマンス問題を効果的に特定し、バックエンドのパフォーマンスのボトルネックと関連付ける知見を得ました。
このアプローチにより、エンドツーエンドのパフォーマンスの課題に先手を打って対処し、ユーザーにシームレスで最適化された体験を提供することが可能になります。
Lab 4 Frustrating navigation
Lab4ではCloudWatch RUMとExplore Relatedのテレメトリ機能を活用してパフォーマンス問題を特定する方法を学べました。
CloudWatch RUMで「Slowest load time」メトリクスでページをならべ「AddAttributeName」で最も遅いページを確認します。
こちらを開くとメインのウィジェットが表示され、レイテンシーの速度によってPasitive experience
/ Tolerable experience
/ Frustrating
の三段階で分離されます。
また、「Web virtals」と「Page load steps over time」を見ることで、ブラウザのレンダリングやページステップごとの読み込み時間などクライアント側のエクスペリエンスに関する問題を判断することができます。
Lab 4では、CloudWatch RUMがWeb Vitalsを通じて実際のユーザー体験を捕捉することで、アプリケーションのパフォーマンスにおける異常を可視化する方法を探りました。これにより、ブラウザ、デバイス、場所など、様々な側面にわたるクライアントサイドのパフォーマンスデータを分析する貴重な洞察が得られます。
最後に
このBuilders' session通して、CloudWatch RUMやCloudWatch Syntheticsの活用方法を学ぶことができました。
Lab 1 〜 4の内容にすでに自信があるかたは、OptionのLabをやることでより実績的な活用方法も学べます。
また余談ですが、Builders' sessionは講師との距離が近いので、このセッションと直接関係ないCloudWatchの質問ができたのがとても良かったです。
(直近書いたCloudWatch Network Monitoring Flow Monitorsについていろいろとお話を伺うことができました。)
この記事が誰かのお役に立てれば幸いです。
以上、たかやま(@nyan_kotaroo)でした。